﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using extremeEvents.Data;

namespace extremeEvents.Patrocinio
{
    public partial class EditarPatrocinio : UserControl
    {
        public EditarPatrocinio()
        {
            InitializeComponent();
        }

        private void carregar()
        {
            try
            {
                var patrocinio = (getPatrocinio_Result)DLGenerica.Instance.obterPatrocinio();

                //mostrar nome
                nomePatrocinio.Text = patrocinio.Nome;

                //**** definir imagem

                //criar ficheiro temporario
                string strfn = Convert.ToString(DateTime.Now.ToFileTime());

                FileStream fs = new FileStream(strfn, FileMode.CreateNew, FileAccess.Write);
                fs.Write(patrocinio.Foto, 0, patrocinio.Foto.Length);
                fs.Flush();
                fs.Close();

                //mostrar imagem
                pictureBox1.Image = Image.FromFile(strfn);

            }
            catch (Exception exp)
            {
                Console.WriteLine(exp.Message);
            }
        }

        private void showButton_Click(object sender, EventArgs e)
        {
            // Show the Open File dialog. If the user clicks OK, load the 
            // picture that the user chose. 
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                pictureBox1.Load(openFileDialog1.FileName);
                //openFileDialog1.
                FileInfo fiImage = new FileInfo(openFileDialog1.FileName);

                //criar variavel para guardar a informação da imagem (em binário)
                byte[] m_barrImg = new byte[Convert.ToInt32(fiImage.Length)];

                //criar um file strem para ler a imagem
                FileStream fs = new FileStream(openFileDialog1.FileName, FileMode.Open, FileAccess.Read, FileShare.Read);

                //converter imagem para bynary
                int iBytesRead = fs.Read(m_barrImg, 0, Convert.ToInt32(fiImage.Length));

                //fichar strem
                fs.Close();

                //obter nome do patrocinio
                string nome = Microsoft.VisualBasic.Interaction.InputBox("Prompt",
                       "Nome do patronciono",
                       "", //openFileDialog1.FileName
                       0,
                       0);

                if (nome.Length == 0)
                {
                    MessageBox.Show("Erro 31: O campo 'nome' não pode ser vazio", "Erro ao guardar as alterações");
                    return;
                }

                //mostrar nome
                nomePatrocinio.Text = nome;

                //guardar imagem
                DLGenerica.Instance.setpatrocinio(nome, m_barrImg);

            }
        }

        private void EditarPatrocinio_Load(object sender, EventArgs e)
        {
            carregar();
        }

        private void closeButton_Click(object sender, EventArgs e)
        {
            //voltar ao menu principal
            Navegador.Instance.irPara("menuPage");
        }
    }
}
